Funcionalidad con operadores

Descripcion

Como hacer que los operadores realicen las operaciones que queramos cuando se pasan nuestros objetos en una operación con dichos operadores.

Metodo

Para definir una funcionalidad a traves de operadores para nuestro objeto tenemos que definir dentro de nuestra clase cual es la funcionalidad que se realizará al pasar nuestro objeto como uno de los operadores de una operación binaria (ya sea sumar, restar, multiplicar...etc):

Usamos la palabra reservada operator seguida del operador sobre el que queramos definidr la funcionalidad, y los parametros que se pasan al operador, por lo menos uno de los dos parámetros tiene que ser del mismo tipo que el de nuestra clase:

public static int operator +(Persona persona1, Persona persona2)
{
    return persona1.nombre.Length + persona2.nombre.Length;
}

En este caso tenemos un objeto persona con un campo nombre, la funcionalidad que le estamos dando al operador de suma (+) es la de devolver la suma de los caracteres del string del nombre de los dos objetos.

Aplicación principal:

using PersonaApp;

Persona persona1 = new Persona("Juan");

Persona persona2 = new Persona("Maria");


Console.Write(persona1 + persona2);

Clase Persona:

using System.Collections;

namespace PersonaApp
{
    public class Persona
    {
        string nombre;

        public Persona(string nombre)
        {
            this.nombre = nombre;
        }
        public static int operator +(Persona persona1, Persona persona2)
        {
            return persona1.nombre.Length + persona2.nombre.Length;
        }
    }
}
Tags

C# | operadores